package com.example.springboot.service;

/*
 * 功能：产品信息-认证任务-管理
 * 日期：2024-3-28 20:13
 * 作者：RabbitQ
 */

import cn.hutool.core.util.StrUtil;
import com.example.springboot.entity.ExportProduct;
import com.example.springboot.entity.Product;
import com.example.springboot.mapper.ProdProgressMapper;
import com.example.springboot.mapper.ProductMapper;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.CrossOrigin;

import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

@Service
public class ProductService {

    @Resource
    ProductMapper productMapper;

    @Resource
    ProdProgressMapper prodProgressMapper;

    @CrossOrigin //跨域访问 前端访问数据
    //获取所有产品信息
    public List<Product> selectAll() {
        return productMapper.selectAll();
    }


    //单个导入产品数据
    public void submitSingle(Product product) {
        productMapper.insertPro(product);
    }

    //批量导入产品数据
    public void submitBatch(List<Product> productList) {
        for (Product product: productList) {
            // 获取当前日期
            LocalDate currentDate = LocalDate.now();
            // 创建日期格式化器
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
            // 使用格式化器格式化日期
            String formattedDate = currentDate.format(formatter);

            product.setStartDate(formattedDate);
            productMapper.insertPro(product);
        }
    }

    //依据产品负责人和状态筛选
    public List<Product> select_By_charger_proStatus(String charger, String proName) {
        List<Product> productList = new ArrayList<>();
        //二者皆不为空
        if(!StrUtil.isBlank(charger) && !StrUtil.isBlank(proName)){
           productList =  productMapper.selectByChargerProName(charger, proName);
        }
        //charger为空
        else if(StrUtil.isBlank(charger) && !StrUtil.isBlank(proName)){
            productList =  productMapper.selectByProName(proName);
        }
        //proName为空
        else if(!StrUtil.isBlank(charger) && StrUtil.isBlank(proName)){
            productList =  productMapper.selectByCharger(charger);
        }
        //二者皆空
        else{
            productList =  productMapper.selectAll();
        }

        return productList;

    }

    //首页功能——通过负责人和产品名称锁定需要编辑的产品认证任务——然后编辑更新
    public void updateByProductInfo(Product newProduct) {
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();
        // 创建日期格式化器
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        // 使用格式化器格式化日期
        String formattedDate = currentDate.format(formatter);
        newProduct.setStartDate(formattedDate);

        productMapper.updateByChargerProName(newProduct);
    }

    //首页功能——通过id锁定需要删除的产品认证任务——然后删除
    public void delByProductInfo(Product newProduct) {
        productMapper.deleteById(newProduct.getId());
    }

    //第三方认证界面——获取需要第三方认证的数据
    public List<Product> selectEvenID() {
        return productMapper.selectEvenID();
    }

    //第三方认证界面——获取需要第三方认证的数据——
    public List<ExportProduct> selectEvenIDThird() {
        return productMapper.selectEvenIDThird();
    }


}
